package com.xpffly.design.memento.common;

/**
 * @Author: 午夜学徒
 * @Date: 2022/4/4 21:44
 * @Description：发起人角色， 记录当前时刻的内部状态，负责定义哪些属于备份范围的状态，负责创建和恢复备忘录数据
 */
public class Originator {
    /**
     * 内部状态
     */
    private String statue = "";

    public String getStatue() {
        return statue;
    }

    public void setStatue(String statue) {
        this.statue = statue;
    }

    /**
     * 创建一个备忘录--记录当前内部状态
     *
     * @return
     */
    public Memento createMemento() {
        return new Memento(this.statue);
    }

    /**
     * 恢复一个备忘录---将当前内部状态恢复为之前记录的状态
     *
     * @param memento
     */
    public void recoverMemento(Memento memento) {
        this.setStatue(memento.getState());
    }
}
